#ifndef _RADIAN_COMMON_H_
#define _RADIAN_COMMON_H_

//------------Platform---------------------
#include <winsock2.h>
#include <windows.h>
//------------STL HEADERS---------------------
#include <vector>
#include <map>
#include <queue>
#include <string>

//------------Ogre---------------------
#include "OgrePrerequisites.h"
#include "util/colourValue.h"
#include "OgreString.h"
//------------QT---------------------
class QWidget;
class QDialog;
class QMainWindow;
class QCheckBox;
class QLabel;
class QLabelEdit;
class QLineEdit;
class QPushButton;
class QCloseEvent;
class QString;
class QAction;
class QToolBar;
class QMenu;
class QBasicTimer;
class QTimer;
class QMouseEvent;
//------------Editor---------------------
class RadianRenderWnd;
class RadianMainRenderWnd;
class RadianResourceLoadingListener;
class RadianEditorEngine;
class RadianEditorController;
class RadianMainEditorController;
class RadianAir;
class ResourceEditor;
class RadianLayer;
class RadianLayerController;
class RadianWorldLayerManager;
class RadianAxisDrawer;
//------------Logic---------------------
enum RadianBrowserMode
{
	RBM_NORMAL,
	RBM_WALK,
	RBM_SCROLL_H,
	RBM_SCROLL_V,
};

enum RadianBrowserSenstive
{
	RBS_LOCK	    = 0,
	RBS_LOWEST      = 1,
	RBS_LOWER		= 10,
	RBS_LOW			= 25,
	RBS_NORMAL      = 50,
	RBS_FAST		= 75,
	RBS_FASTER		= 90,
	RBS_FASTEST		= 100,

};

enum RadianEditMode
{
	Edit_None		= 0,
	Edit_Move		= 1,
	Edit_Rotate		= 2,
	Edit_Scale		= 3,

};
//------------Common Varaiables---------------------
const static Ogre::String G_EditorMainSceneMgrName = "RadianEditor_MainSceneMgr";
const static Ogre::String G_EditorMainCameraName = "RadianEditor_MainCamera";
const static Ogre::String G_EditorBaseRefPlaneName = "RadianEditor_BaseReferencePlane";
const static Util::ColourValue G_EditorDefaultBackgroundColour(100.0f / 256.0f, 149.0f / 256.0f, 237.0f / 256.0f);
const static Ogre::String G_EditorResourcePath = "../../Media/";
const static Ogre::String G_EditorModelsResourcePath = "../../Media/models/";
const static Ogre::String G_EditorMaterialsResourcePath = "../../Media/materials/";
//------------Common typedef---------------------
typedef std::vector<Ogre::SceneNode*> SceneNodeList;
//------------Common macro---------------------
 
//...
#endif

